//using System;
//using System.Collections.Generic;
//using System.Linq;
//using UnityEngine;

//namespace PKGames.Store.Persistence
//{
//	[Serializable]
//	public class StorePersistence
//	{
//		[SerializeField]
//		private List<ProductPersistence> _productPersistenceList;

//		private Dictionary<string, ProductPersistence> _productPersistenceDict;

//		public Dictionary<string, ProductPersistence> ProductPersistenceDict
//		{
//			get
//			{
//				if (_productPersistenceDict == null)
//				{
//					_productPersistenceDict = _productPersistenceList.ToDictionary((ProductPersistence productPersistence) => productPersistence.Product.StoreId, (ProductPersistence productPersistence) => productPersistence);
//				}
//				return _productPersistenceDict;
//			}
//		}

//		public StorePersistence()
//		{
//			_productPersistenceList = new List<ProductPersistence>();
//		}

//		private void AddProductPersistence(ProductPersistence productPersistence)
//		{
//			_productPersistenceList.Add(productPersistence);
//			if (_productPersistenceDict != null)
//			{
//				_productPersistenceDict[productPersistence.Product.StoreId] = productPersistence;
//			}
//		}

//		private void RemoveProductPersistence(string productPersistenceId)
//		{
//			if (!_productPersistenceDict.ContainsKey(productPersistenceId))
//			{
//				return;
//			}
//			int num = _productPersistenceList.FindIndex((ProductPersistence persistence) => persistence.Product.StoreId == productPersistenceId);
//			if (num >= 0)
//			{
//				_productPersistenceList.RemoveAt(num);
//				if (_productPersistenceDict != null)
//				{
//					_productPersistenceDict.Remove(productPersistenceId);
//				}
//			}
//		}

//		public void UpdateProductPersistence(ProductPersistence productPersistence)
//		{
//			RemoveProductPersistence(productPersistence.Product.StoreId);
//			AddProductPersistence(productPersistence);
//		}
//	}
//}
